CSS コードサンプル tableの中で画像とテキストのそろえを変える
ちょっとしたコードサンプルです。
なるべくtableという表形式コーディングはやめよう!といわれて久しいですが、制作の現場では、ときどき必要な場合がありますよね。
たとえば、次のようなレイアウトを実現する場合です。

まさにテーブル(表)ですね。
さて、このように、画像とテキストが入り混じり、画像は真ん中寄せ(センタリング)したいけれども、テキストは左寄せにしたい、というのはよくあることだと思います。
まずは、テーブルのコーディングだけしてみます。
<table class="photo_table" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<th>写真</th><th>説明</th><th>写真</th><th>説明</th>
</tr>
<tr>
<td><img src="images/goya.jpg"></td>
<td>ゴーヤ<br>
丸々としたゴーヤです。
</td>
<td><img src="images/figure.jpg"></td>
<td>フィギュアです。<br>
素敵なフィギュアですよ。
</td>
</tr>
<中略>
</tbody>
</table>
cssで、画像は真ん中よりに、テキストは左寄せにしてみましょう。
たとえば、いくつか方法がありますが、
- 画像のtdにclassやidをつけて、text-align:center;を指定する
- 画像を
でくくる
などは、タグの量を増やさなければいけません。
この例ではたったの2行ですが、これが20行ぐらいある場合を考えると、ちょっと手間ですよね。
スタイルだけで設定するには次のようにします。
.photo_table{ text-align:left; }.photo_table img { display: block; margin: auto; }imgタグはインライン要素なので、display:blockでブロック要素にしないと、margin:autoがききません。
thやbackground-colorなどのほかのスタイルは、適宜設定してください。
で、この例ではtableの例になっていますが、別にdivでもなんでもOKです。
